/*
 * @Description: 闭包实例
 * @Author: zzj
 * @Date: 2021-09-05 20:07:32
 * @LastEditors: zzj
 * @LastEditTime: 2021-09-13 14:07:52
 */

//闭包实例
for(var i=1;i<=10;i++){
    setTimeout(function(){
        console.log(i);
    },1000)
}

//如何解决这个问题？
//IIFE 帮助我们创建局部块
for (var j =1;j<=10;j++){
    (function(j){
        setTimeout(function(){
            console.log(j)
    })
    })(j)
}

function getNum(num){
    var res = [];
    for(var s=0;s<=num;s++){
        res[s] = (function(s){
            return function(){
                console.log(s);
            } 
        })(s)
    }
    return res;  //返回了包含多个函数的数组
}
var arr = getNum(3);
arr[0]();
arr[1]();
arr[2]();
console.log("---------")